Build 37 (2026-10-07)
- Regression behoben: Alle 35 vollständigen Katalogsprachen erscheinen wieder
  in Erststart- und Infofenster-Auswahl.
- Eine schriftabhängige Breitenmessung blendet nicht mehr die gesamte Sprache
  aus, wenn eine einzelne Hauptfenster-Beschriftung knapp zu breit ist.
- Fünf feste Hauptfenstertexte je Zusatzsprache bewusst verkürzt, ohne die
  ausführlichen Dialog-, Fehler- und Hilfetexte zu verändern.
- Regressionstest erzwingt alle 35 stabilen Sprach-IDs in der Dropdownliste.

Build 36 (2026-10-06)
- Vietnamesisch als 35. Sprache ergänzt.
- Alle 33 zusätzlichen Sprachkataloge vollständig aus der englischen Referenz
  mit DeepL neu übersetzt und strukturell nachgeprüft.
- Vollständigkeit, printf-Platzhalter, NUL-Dateifilter, CRLF-Struktur,
  UTF-16-Größen und geschützte Produkt-/Sicherheitsbegriffe automatisiert validiert.
- Aprilscherz-Schaltfläche und alle Texte für 2027 bis 2034 in die Prüfung
  einbezogen.

Build 35 (2026-10-06)
- Die beim Erststart bestätigte Sprache wird sofort auf die bereits unsichtbar
  erzeugten Hauptfenster-Steuerelemente angewendet.
- Dadurch erscheint das Hauptfenster schon beim ersten Programmlauf in der
  gewählten Sprache, unabhängig davon, ob die Passwort-Einrichtung bestätigt
  oder abgebrochen wird.

Build 34 (2026-10-06)
- Beim ersten Start erscheint vor jeder Passwort-Einrichtung ein eigenes,
  ausschließlich aus Sprachauswahl und OK bestehendes Fenster.
- Eine gültig gespeicherte Sprache überspringt die Erststart-Auswahl; fehlt sie,
  wird Deutsch auf einem deutschen Windows vorgewählt, sonst Englisch.
- Alle 34 Listeneinträge zeigen hinter dem Eigennamen die Sprachbezeichnung auf
  Englisch statt auf Deutsch.

Build 33 (2026-10-05)
- UAC für die gemeinsame DLL-Option auf Windows 10/11; keine Unterdrückung durch
  bloße Smartcard-Anwesenheit, auch bei gemischten Entschlüsselungsauswahlen.
- Vorbereitete Explorer-/Drop-/Wiederholungsauswahlen verhindern einen verlustreichen
  Neustart aus dem Infofenster; Übergabe beim nächsten OK.
- Deutsche Sprachbezeichnungen neben den Eigennamen; Popupbreite nach Schriftmaß.
- Root-Lizenzsammlung aus den vorhandenen Originaltexten wiederhergestellt.
- DLL Build 32 und signiertes Sparse-MSIX/Zertifikat bleiben binär unverändert.

Build 32 (2026-10-05)
- Sprachauswahl im Infofenster; letzte Auswahl bleibt gemeinsam mit DE/EN gespeichert.
- Separate Sprachdatei; Windows-GDI-Breitenprüfung vor Freigabe zusätzlicher Sprachen.
- FIDO2-DLL und Shell übernehmen die gespeicherte Sprache.
- Neue Übersetzungen sind Sprachentwürfe mit manuellen Beschriftungskorrekturen.
- Bestehende Win11-Sparse-Identität und deren Zertifikat bleiben unverändert.

Build 31 (2026-10-01)
- Automatische UAC-Pruefung vor der Verarbeitung von FIDO2-DLL-Dateien,
  auch bei scrypt als Schreibprofil; Auswahluebergabe und Abbruch-Erhalt.
- Fortschrittsbalken wieder gruen, unabhaengig von der Titelleistenfarbe.
- Anklickbarer vollstaendiger Website-Link unten rechts im About-Fenster.
- Lizenzuebersicht und kopierbarer ThirdPartyLicenses-Ordner fuer Installer.

﻿Cryptext x64 – Änderungsprotokoll
=================================

Konsolidierte deutsche Fassung
Aktueller Entwicklungsstand: v0.12 build 25 (Dateiversion 0.12.0.25)
Stand: 29.09.2026

Diese Datei fasst die im Quellpaket enthaltenen CHANGELOG- und relevanten README-Entwicklungsnotizen chronologisch zusammen. Die sehr frühen internen Zwischenstände vor 0.2d sind nicht als eigene CHANGELOG-Dateien im aktuellen Paket enthalten.


v0.12 build 25
===============

- Erhöht gestartetes Cryptext lässt über `ChangeWindowMessageFilterEx` gezielt
  die drei klassischen Explorer-Drag&Drop-Nachrichten `WM_DROPFILES`,
  `WM_COPYDATA` und `WM_COPYGLOBALDATA` durch die Windows-UIPI-Grenze.
- Die Freigabe wird nur bei bestätigten Administratorrechten am konkreten
  Cryptext-Hauptfenster eingerichtet; andere Fensternachrichten bleiben
  gesperrt und normal gestartetes Cryptext bleibt unverändert.
- Produkt-, Datei- und Sparse-MSIX-Version wurden auf 0.12.0.25 angehoben.
- Die Änderung benötigt noch einen praktischen Test mit normalem Explorer und
  erhöht laufendem Windows-10-FIDO2-Modus.


v0.12 build 24
===============

- Die externe Windows-10-FIDO2-Bibliothek heißt nun eindeutig
  `CryptextFido2.Win10.dll`.
- Loader, Installer, Tooltip, Buildskript, Probe-Quelltext, Tests und aktuelle
  Dokumentation verwenden gemeinsam den neuen Namen.
- Der Installer kopiert die neue DLL automatisch und entfernt beim Update die
  nicht mehr verwendete alte Datei `CryptextFido2.dll`.
- Die Lizenzhinweise verweisen jetzt ausdrücklich auf die eingeschränkte
  `LICENSE_Source_Inspection_EN-DE.txt`; sie wird korrekt nicht als
  Open-Source-Lizenz bezeichnet.
- Produkt-, Datei- und Sparse-MSIX-Version wurden auf 0.12.0.24 angehoben.


v0.12 build 23
===============

- Der externe Windows-10-FIDO2-Modus startet Cryptext nur bei vorhandener ABI-1-DLL gezielt über die Windows-UAC-Abfrage neu; alle anderen KDFs bleiben ohne allgemeine Administratoranforderung.
- Explorer- und Kommandozeilenargumente bleiben erhalten, weil die Erhöhung vor Kommandozeilenanalyse und Ein-Instanz-Initialisierung erfolgt.
- Nach einer bereits im DLL-Dialog angezeigten PIN-/CTAP-Fehlermeldung erscheint bei einer einzelnen Datei nicht noch dieselbe allgemeine Cryptext-Fehlermeldung.
- Verschlüsseln, Entschlüsseln nach Neustart, Mehrfachauswahl, Verhalten ohne DLL und falsche PIN wurden unter Windows 10 mit echter Hardware praktisch bestätigt.
- Die großen Fremdquellbäume wurden aus dem Verteilungspaket entfernt. Versionen, Prüfsummen, Projektlinks, vollständige Lizenzen und die angepasste `hid_win.c` bleiben erhalten.


v0.12 build 22
===============

- Die optionale `CryptextFido2.dll` ergänzt einen direkten USB-CTAP2-/hmac-secret-Pfad für Windows 10/11.
- Die DLL wird ausschließlich über einen absoluten Pfad neben der EXE mit eingeschränktem Suchpfad und ABI-Prüfung geladen.
- Die Windows-10-Auswahl ist nur bei vorhandener, kompatibler DLL aktiv.


v0.12 build 21
===============

- Alle Cryptext-eigenen Haupt-, Dialog-, Fortschritts-, Tresor- und Bildschirmtastaturfenster verwenden unter Windows 11 nun dieselbe lila System-Titelleiste mit weißer Schrift und einen klar sichtbaren lila Außenrahmen.
- Die Umsetzung bündelt die dokumentierten DWM-Fensterattribute für Rahmen-, Titelleisten- und Textfarbe in der bereits von allen Cryptext-Fenstern aufgerufenen gemeinsamen Hilfsfunktion.
- Windows-eigene Sicherheitsoberflächen, insbesondere WebAuthn/PIN, werden nicht umgestaltet.
- Die Tresor-PIN-Felder übernehmen jetzt wie die übrigen geschützten Passwortfelder die sichtbare Cursorposition und Markierung. Zifferneingabe, Rücktaste und Entf wirken damit nicht mehr zwangsläufig am Pufferende.
- Die englisch-deutsche Quelltext-Inspektionslizenz liegt zusätzlich unter dem eindeutigen Dateinamen `LICENSE_Source_Inspection_EN-DE.txt` im Paketstamm.
- Die Produkt-, Datei- und Sparse-MSIX-Version wurde auf v0.12 build 21 beziehungsweise 0.12.0.21 angehoben.
- Cryptext64.exe ist 253.440 Bytes groß, Cryptext64Shell.dll 19.968 Bytes. Alle 122 automatisierten Tests wurden erfolgreich ausgeführt; der Hochprofiltest erreichte ungefähr 1.045 MiB Spitzen-RSS.


v0.12 build 20
===============

- Der Windows-11-Praxistest bestätigt, dass der in Build 19 korrigierte moderne Explorer-Aufruf bei Dateien und Ordnern funktioniert.
- Der primäre Dateibefehl zeigt nun passend zur Auswahl „Verschlüsseln“ oder „Entschlüsseln“; nur eine gemischte Auswahl behält die neutrale Bezeichnung „Cryptext“. Fehlen beim frühen Menüaufbau noch Auswahldaten, bleibt „Verschlüsseln“ als sichtbarer Rückfalltitel erhalten.
- Für Ordner besitzt „Verschlüsseln“ jetzt eine eigene IExplorerCommand-Klasse. Dadurch heißen beide Unterbefehle zuverlässig „Verschlüsseln“ und „Entschlüsseln“.
- Der separate Dialog zum erstmaligen Einrichten beziehungsweise Ändern des Passworts verarbeitet Eingaben, Rücktaste und Entf nun an der sichtbaren Cursorposition und ersetzt markierte Bereiche. Die Folge `123`, dreimal Pfeil links, `Test` ergibt damit `Test123`.
- Das Sparse-MSIX nimmt `HKCU\Software\Cryptext64` und `HKCU\Software\Classes\Cryptext64.EncryptedFile` gezielt von der Registry-Schreibvirtualisierung aus. Dadurch erreicht die im Infofenster gewählte Dateisymbolvariante wieder die normale Explorer-Zuordnung statt nur eine paketinterne Registry-Ansicht.
- Produkt-, Datei- und Sparse-MSIX-Version wurden auf v0.12 build 20 beziehungsweise 0.12.0.20 angehoben.
- Cryptext64.exe ist 252.928 Bytes groß, Cryptext64Shell.dll 19.968 Bytes. Alle 117 automatisierten Tests wurden erfolgreich ausgeführt; der Hochprofiltest erreichte ungefähr 1.045 MiB Spitzen-RSS.


v0.12 build 19
===============

- Der Praxistest von Build 18 bestätigt, dass die neuen IExplorerCommand-Einträge im primären Windows-11-Kontextmenü erscheinen: bei Dateien als „Cryptext“, bei Ordnern als Untermenü mit zwei Befehlen.
- Beim Anklicken eines neuen Eintrags meldete Windows jedoch „Der Remoteprozeduraufruf ist fehlgeschlagen“. Der klassische IContextMenu-Eintrag unter „Weitere Optionen anzeigen“ blieb davon getrennt.
- Die konkrete Absturzursache lag in der Aufräumroutine des modernen Auswahl-Laders: Nach einem lokalen Unterfunktionsaufruf waren zwei Stackadressen um acht Bytes verschoben. Dadurch wurde der `IShellItem`-Zeiger an `CoTaskMemFree` übergeben und anschließend der Pfadpuffer als COM-Schnittstelle freigegeben. Build 19 verwendet die korrekten Adressen.
- `IExplorerCommand::Invoke` erzeugt deshalb keine künstliche `CMINVOKECOMMANDINFO`-Struktur mehr und ruft nicht länger intern `IContextMenu::InvokeCommand` auf.
- Nach dem Einlesen und Klassifizieren der `IShellItemArray`-Auswahl ruft der moderne Befehl nun direkt eine gemeinsame, COM-unabhängige Startfunktion auf. Der klassische Befehl verwendet dieselbe Funktion.
- Die Versionsangaben wurden auf v0.12 build 19 beziehungsweise 0.12.0.19 angehoben. Dieser Aufrufpfad benötigt noch einen praktischen Windows-11-Test.


v0.12 build 18
===============

- Die Zertifikatsinstallation und Sparse-MSIX-Registrierung aus Build 17 wurden unter Windows 11 praktisch bestätigt. Der moderne Cryptext-Eintrag erschien danach jedoch bei keinem Datei- oder Ordnertyp im primären Kontextmenü; der klassische Weg unter „Weitere Optionen anzeigen“ funktionierte weiterhin.
- Der IExplorerCommand-Code wurde mit drei funktionierenden Referenzen verglichen: IExplorerCommand-Examples, W11ContextMenuDemo und NanaZip. Alle bestätigen einen `SurrogateServer` ohne `AppId`; ein spekulatives Manifestfeld wurde daher nicht ergänzt.
- `GetTitle` und `GetState` hängen beim Aufbau des primären Menüs nicht mehr von einem bereits gelieferten `IShellItemArray` ab. `GetState` meldet den Befehl sofort als aktiviert; die vollständige Auswahl wird erst in `Invoke` eingelesen und validiert. Damit kann Explorer den Eintrag nicht mehr wegen einer zu frühen fehlenden Auswahl lautlos verwerfen.
- Der Hauptbefehl besitzt beim Menüaufbau den stabilen Titel „Cryptext“. Die Erkennung von Ver- oder Entschlüsselung erfolgt unverändert bei der Ausführung.
- Die KDF-Zeilen im kompakten Infofenster verwenden wieder 18 statt 16 Dialogeinheiten Zeilenabstand. Normale Dialogschrift, Fenstergröße, Schaltflächen und kleine Pfadzeile bleiben erhalten.
- Die Buildausgabe wurde von alten Zwischenstandsnotizen bereinigt. Im Ausgabepaket liegen Compiler-, Quelltext- und Testdateien gesammelt unter `scr`; `bin`, `docs`, Installer, README, CHANGELOG und Lizenz bleiben direkt sichtbar.
- Cryptext64.exe ist 252.416 Bytes groß, Cryptext64Shell.dll 19.456 Bytes. 112 automatisierte Tests wurden erfolgreich ausgeführt; der Hochprofiltest erreichte ungefähr 1.045 MiB Spitzen-RSS.


v0.12 build 17
===============

- Der Windows-11-Praxistest von Build 16 ergab beim Registrieren des Sparse-MSIX den nativen Fehler 0x800B0109: Das selbstsignierte Testzertifikat war nur unter `CurrentUser\TrustedPeople` eingetragen, während die MSIX-Paketprüfung den Zertifikatsspeicher des lokalen Computers verwendet.
- Nach Anzeige von Betreff, Fingerabdruck und Ablaufdatum sowie ausdrücklicher Y/N-Zustimmung fordert der Installer jetzt einmal Administratorrechte an und trägt ausschließlich das öffentliche Zertifikat unter `LocalMachine\TrustedPeople` ein.
- Der nicht empfohlene Stammzertifikatsspeicher wird nicht verwendet. Der private Signaturschlüssel bleibt weiterhin ausschließlich auf dem Buildrechner.
- Nach dem Import wird das Vorhandensein exakt desselben Fingerabdrucks im Computerspeicher geprüft. Ein alter, wirkungsloser Build-15/16-Eintrag unter `CurrentUser\TrustedPeople` wird gezielt entfernt.
- Der verwendete Fingerabdruck wird für die Deinstallation gespeichert. `uninstall_shell_user.cmd` entfernt nach einer eigenen Administratorbestätigung genau dieses Testzertifikat; bei abgelehnter oder fehlgeschlagener Entfernung bleibt der Fingerabdruck für einen späteren Versuch erhalten.
- Klassische Shell-Erweiterung, Dateizuordnung, Anwendungsdateien, Kryptografie und Infofenster-Layout sind gegenüber Build 16 unverändert.
- Cryptext64.exe ist 252.416 Bytes groß, Cryptext64Shell.dll 19.456 Bytes. 111 automatisierte Tests wurden erfolgreich ausgeführt; der Hochprofiltest erreichte ungefähr 1.045 MiB Spitzen-RSS.


v0.12 build 16
===============

- Die in Build 15 zusätzlich erzeugte kleinere Schrift der sechs KDF-Zeilen wurde entfernt. Alle Auswahlzeilen verwenden wieder dieselbe normale Dialogschrift.
- Die kompakte Dialoggröße von ungefähr 527 x 565 Pixel bleibt unverändert.
- Speichern und Abbrechen wurden nach unten verschoben. Der Abstand zur grauen Pfadzeile beträgt dadurch ungefähr fünf statt neunzehn Dialogeinheiten.
- Die acht Pixel kleine Schrift bleibt ausschließlich der unaufdringlichen Pfadangabe vorbehalten.
- Historische Preview-Buildmetadaten, gespeicherte Preview-Testprotokolle, der Preview-4-Quellpatch und die dazugehörigen alten Ergebnisberichte wurden aus dem Paket entfernt.
- Dateiformat-, KDF-, Vault-, Legacy-, Lizenz- und Herkunftsdokumentationen bleiben erhalten.
- Cryptext64.exe ist 252.416 Bytes groß, Cryptext64Shell.dll 19.456 Bytes. 111 automatisierte Tests wurden erfolgreich ausgeführt.


v0.12 build 15
===============

- Das Infofenster wurde wieder auf ungefähr 527 x 565 Pixel verkleinert. Die Danksagung und die kleine graue Pfadangabe der laufenden Cryptext64.exe bleiben erhalten.
- Die Zeilen der Schlüsselableitung verwenden eine kompaktere Schrift, damit beide vollständigen FIDO2-Bezeichnungen sichtbar bleiben.
- install_shell_user.cmd ist jetzt der einzige benötigte Installationsaufruf. Fehlt das Windows-11-Testpaket, startet die CMD das Paket-Buildskript automatisch.
- MakeAppx.exe und SignTool.exe werden im installierten Windows SDK gesucht. Unter Windows 10 werden Cryptext64.Win11.msix und Cryptext64.Win11-Test.cer erzeugt und signiert, aber das moderne Windows-11-Menü wird dort nicht registriert.
- Unter Windows 11 werden Paketsignatur und CER-Datei anhand des Zertifikatfingerabdrucks verglichen. Vor dem erstmaligen Vertrauen zeigt Cryptext Betreff, Fingerabdruck und Ablaufdatum und verlangt eine ausdrückliche Bestätigung.
- Bei Ablehnung oder einer unpassenden Zertifikatsdatei bleibt die klassische Explorer-Erweiterung unter „Weitere Optionen anzeigen“ verfügbar.
- Bereits passende Paketregistrierungen und bereits vertraute Zertifikate werden erkannt. Die Deinstallation entfernt gezielt das mitgelieferte Testzertifikat aus CurrentUser\TrustedPeople.
- Praktisch bestätigt: Nach Installation der benötigten Windows-SDK-Komponenten hat der Ein-Schritt-Aufruf unter Windows 10 sowohl die MSIX- als auch die CER-Datei erfolgreich erzeugt.
- Cryptext64.exe ist 252.416 Bytes groß, Cryptext64Shell.dll 19.456 Bytes. 111 automatisierte Tests wurden erfolgreich ausgeführt.


v0.12 build 12 bis build 14
===========================

- Cryptext64Shell.dll implementiert zusätzlich IExplorerCommand für das primäre Windows-11-Kontextmenü; IContextMenu bleibt für Windows 10 und „Weitere Optionen anzeigen“ erhalten.
- Ein Sparse-MSIX verweist auf die normalen Cryptext-Dateien und enthält keine zweite EXE oder DLL.
- Im nativen FIDO2-Modus wird die Cryptext-Bildschirmtastatur ausgeblendet.
- Das Infofenster dankt N_T_F_D für die praktische FIDO2- und Explorer-Prüfung.
- Der Pfad der laufenden EXE wurde zunächst als Feld ergänzt und danach zu einer rahmenlosen, ausgegrauten Mikrozeile am unteren Dialogrand verkleinert.
- Installer und Deinstaller verwalten Paketversion und externen Installationspfad, damit eine bereits passende Registrierung nicht unnötig ersetzt wird.


v0.12 build 9 bis build 11
==========================

- Neue FIDO2-Dateien verwenden CT64FILE v3, Profil 2. Ein Root-Secret gilt nur für die laufende Auswahl; jede Datei erhält über ein eigenes zufälliges Salt einen getrennten AES-256-Schlüssel.
- Unter WebAuthn API v8+ genügt für einen neuen Mehrdateienauftrag eine PIN-/Berührungsfreigabe. API v4 bis v7 benötigt beim ersten Aufbau zwei Freigaben, danach keine weitere pro Datei oder Prüfpass.
- Bereits erzeugte FIDO2-Profil-1-Dateien bleiben lesbar.
- Das Passwortfeld überträgt Cursor-, Maus- und Markierungspositionen korrekt auf den geschützten SecureInput-Puffer. Einfügen, Ersetzen, Rücktaste und Entf arbeiten an der sichtbaren Position; entfernte Reste werden überschrieben.
- Beim ersten Start folgt die Sprache der Windows-Anzeigesprache, sofern noch keine gültige Benutzerauswahl gespeichert ist.
- FIDO2 kann Cryptext ohne gespeichertes Passwort im Infobereich weiterlaufen lassen. Der Explorer-Schnellmodus unterstützt FIDO2, fordert aber für jeden neuen Auftrag weiterhin die Windows-/Hardwarefreigabe an.
- Die Reißzwecke der eigenen Titelleiste wurde um einen Pixel nach rechts ausgerichtet.


v0.12 build 6 bis build 8
=========================

- Die FIDO2-Auswahl unterscheidet zwischen der integrierten Windows-11-WebAuthn-API v4+ und dem noch nicht implementierten, ausgegrauten Windows-10-Platzhalter für eine externe libfido2-DLL.
- Windows-Sicherheitsdialoge verwenden das sichtbare Fortschrittsfenster als Besitzer. Laufende WebAuthn-Aufrufe können über die offizielle Cancellation-ID abgebrochen werden.
- Unter WebAuthn API v8+ kann das hmac-secret bereits beim Anlegen des Credentials übernommen werden; API v4 bis v7 verwendet den kompatiblen GetAssertion-Ablauf.
- Der Rahmen umfasst beide FIDO2-Zeilen. Die integrierte Auswahl ist ohne WebAuthn API v4 ausgegraut; Tooltips bleiben auch bei deaktivierten Einträgen erreichbar.
- Fehlermeldungen zeigen aussagekräftige hexadezimale Rückgabecodes. Ordnerenumerationsfehler bewahren den nativen Windows-Code, sodass ein per ACL gesperrter Ordner 0x00000005 statt 0x00000000 meldet.


v0.12 bis build 5
=================

- PBKDF2, Argon2id mit 64 MiB oder 1.024 MiB, scrypt mit 256 MiB sowie FIDO2/YubiKey sind als Schlüsselableitungen auswählbar. Die aktive Auswahl erscheint im Hauptfenstertitel.
- Das Speichern des Infofensters übernimmt zuverlässig die sichtbare KDF-Auswahl und setzt sie nicht mehr unbeabsichtigt auf PBKDF2 zurück.
- Die RAM-Anzeige wird bei speicherharten KDFs auch während der synchronen Berechnung aktualisiert und flackerärmer gezeichnet.
- Tooltips dokumentieren die festen Parameter der Schlüsselableitungen.
- Der erste Klick auf „Abbrechen“ verwirft eine geladene Datei-/Ordnerauswahl und löscht deren Pfade aus dem Prozessspeicher; erst ein weiterer Klick ohne Auswahl beendet beziehungsweise verbirgt Cryptext.
- EXE und Shell-DLL besitzen native VERSIONINFO-Ressourcen mit Produkt-, Datei-, Hersteller- und Copyrightangaben.
- Der FIDO2-Windows-Sicherheitsdialog wird vor Cryptext angezeigt, ohne die Position der Cryptext-Fenster zu verändern.


0.11y dev29 bis dev31
=====================

- DWM-Übergänge wurden für Cryptext-eigene Fenster deaktiviert, damit diese unmittelbar vollständig sichtbar erscheinen.
- „Passwort ändern“ aktualisiert bei vorhandenem Tresor sowohl Grundpasswort-Verifikator als auch verschlüsseltes Tresorgeheimnis transaktionssicher.
- Die Tresoreinrichtung kann ein erneut geprüftes Sitzungspasswort übernehmen, wenn der aktive Eingabepuffer leer ist.
- Korrekturen an NC-Skin-Rahmen und RAM-Löschbereich verhindern das Überzeichnen unterer Rahmenzeilen.
- Jährliche, fest zugeordnete April-Scherze für 2027 bis 2034 wurden ergänzt; ihre Texte liegen im Programm nur ROT13-codiert vor.


0.11y dev28 / fix1 bis fix3
===========================

- Unter HKCU\Software\Cryptext64 wird der REG_DWORD-Wert NoSkin automatisch mit 0 angelegt, falls er fehlt oder ungültig ist.
- NoSkin=0 beziehungsweise jeder Wert außer 1 verwendet den NC-Skin. NoSkin=1 aktiviert ab dem nächsten Programmstart die klassische native Windows-Titelleiste und die ursprüngliche Hauptfenstergeometrie.
- dev28 passte die virtuelle Tastatur zunächst an die Geometrie des NC-Skins an. fix1 war ein Zwischenstand mit einer zusätzlichen 9-Pixel-Korrektur und wurde durch die folgende Ursachenbehebung ersetzt.
- fix2 berücksichtigt, dass Windows ein Fenster am Monitorrand anhand seines unsichtbaren Rahmens begrenzen kann. Die virtuelle Tastatur darf deshalb mit diesem Rahmen außerhalb des Arbeitsbereichs liegen, während ihre sichtbare Kante am Hauptfenster ausgerichtet bleibt.
- Dieselbe sichtbare Kantenberechnung wurde auf den Dialog "Passwort ändern" angewendet.
- fix3 verschiebt ausschließlich die virtuelle Tastatur gegenüber fix2 um 2 Pixel nach rechts. Die endgültigen Konstanten für Verschiebung und unsichtbaren Rahmen betragen jeweils 7 Pixel; der Passwortdialog bleibt bei 9 Pixeln.
- Sichttest und empfohlene Tests für dev28 fix3 wurden am 20.09.2026 bestätigt.
- Keine Änderung an CT64FILE V1, Kryptografie oder NoSkin-Verhalten durch die Fixstände.


0.11y dev27 / fix1
==================

- Das Hauptfenster erhielt eine eigene kompakte, 20 Pixel hohe Titelleiste mit NC-Logo, Farbschemata, Anheften-Schalter sowie Minimieren- und Schließen-Schaltflächen.
- Ziehen an der Titelleiste bewegt das Fenster; ein Rechtsklick öffnet das Systemmenü. Ein Doppelklick auf das NC-Logo wechselt das Farbschema.
- Die bisherige Roll-up-Funktion wurde entfernt.
- fix1 ergänzt Bitmap-Zeichen für Ä, Ö, Ü, ä, ö, ü und ß in der eigenen Titelleiste, entfernt die nicht mehr benötigte Breitentabelle und bündelt die Pinselverwaltung in einer Hilfsroutine.
- Zusätzlich wurden die vertikale Position der Passwortbeschriftung um 1 Pixel und die Gruppenrahmen um 3 Pixel korrigiert.


0.11y dev25 bis dev26
=====================

- dev25 verschob große Arbeitsbereiche in den nicht initialisierten BSS-Bereich, um die Größe der PE-Datei zu reduzieren.
- dev26 fasste Text-, Daten- und BSS-Bereiche zusammen und packte die Shell-Grafik platzsparender.
- Der Abbruch in Phase 3 wurde abgesichert, damit bereits fertiggestellte Dateien korrekt behandelt und temporäre Dateien zuverlässig bereinigt werden.


0.11y dev22 bis dev24 fix1
==========================

- dev22 stabilisierte die Reihenfolge kleiner und großer Dateien. Fortschritt wird bis 100 Dateien gruppiert; Dateien ab 400 MiB werden einzeln behandelt.
- dev23 entfernte WS_BORDER vom Fortschrittsfenster.
- dev24 ersetzte den Rahmen durch eine flache Darstellung.
- dev24 fix1 korrigierte einen kritischen Win64-Aufruffehler bei CallWindowProcW im Fortschrittsfenster.


0.11y dev20 bis dev21
=====================

- dev20 stellte die kompakte Hauptfenstergeometrie im Stil von Cryptext 3.4 mit 232 x 106 Dialogeinheiten und MS Sans Serif 8 wieder her.
- Common Controls v6 und eine flackerärmere Fortschrittsanzeige wurden integriert; außerdem wurde die Übernahme des Sitzungspassworts korrigiert.
- dev21 korrigierte die Breite der Radio-Schaltflächen, präzisierte die Telemetrieregeln und legte die DPI-Behandlung fest.


0.11y dev19
===========

- Der Sicherheitshinweis zu "Bis zur Windows-Abmeldung merken" wurde auf einen echten Tracking-Tooltip umgestellt. Solange sich die Maus über der Option befindet, soll der lange Hinweis ohne automatische Zeitbegrenzung lesbar bleiben.
- Identische doppelte Explorer-/IPC-Aufträge werden nicht mehr zusätzlich als wartender Auftrag gespeichert.
- Für die Duplikaterkennung werden Operation, Keep/Delete-Source-Einstellung und Pfadliste verglichen; der interne Herkunftsmarker des Explorer-Kontextmenüs zählt dabei nicht als inhaltlicher Unterschied.
- Wirklich andere Aufträge können weiterhin als ein separater Pending-Auftrag warten.
- Explorer-Schnellmodus, Single Instance, Grundpasswortmodell, CT64FILE V1 und die sichere Dateitransaktion bleiben unverändert.


0.11y dev18
===========

- Neuer sitzungsbezogener "Explorer-Schnellmodus (ohne Rückfrage)" im Tray-Menü.
- Der Schnellmodus kann nur mit einem gültigen bis zur Windows-Abmeldung gemerkten Grundpasswort verwendet werden und wird niemals dauerhaft aktiviert.
- Beim allerersten Aktivieren erscheint ein ausführlicher Sicherheitshinweis. "Aktivieren" bleibt deaktiviert, bis der Benutzer die Verständnis-Checkbox ausdrücklich gesetzt hat.
- Persistiert wird nur, dass der Warnhinweis bereits bestätigt wurde; der Schnellmodus selbst ist nach Programm-/Windows-Neustart wieder aus.
- Der Schnellmodus gilt nur für eindeutige Verschlüsseln-/Entschlüsseln-Aufträge aus Cryptext64Shell.dll. AUTO, Drag & Drop und normale Kommandozeilenaufrufe behalten den sichtbaren Bestätigungsablauf.
- Bei einer Datei mit anderem/älterem Passwort wird nicht still erfolgreich entschlüsselt; Cryptext wird wieder sichtbar und wechselt in den normalen Passwort-/Fehlerablauf.
- "Passwort aus Speicher löschen" schaltet den Schnellmodus sofort mit ab.
- Passwort, Passwort-Hash und Dateischlüssel werden weiterhin niemals per IPC an andere Prozesse übertragen.
- Kleinere Korrektur der Radio-Control-Breiten, damit der Rahmen der Gruppe "Passwort Optionen" sauber gezeichnet wird.


0.11y dev17 / fix1
==================

- Hauptfenster wieder auf die kompakte Breite des vorigen stabilen Layouts zurückgesetzt.
- Tooltip-Registrierung für den Sicherheitshinweis robuster gemacht.
- Explorer-Neustarts werden über die registrierte Windows-Nachricht "TaskbarCreated" erkannt; ein im Tray liegendes Cryptext meldet sein Tray-Icon danach automatisch erneut an.
- Falls die erneute Tray-Anmeldung fehlschlägt, wird das Hauptfenster wieder sichtbar gemacht, damit Cryptext nicht unerreichbar im Hintergrund weiterläuft.
- fix1 entfernt versehentlich erzeugte UTF-8-BOMs aus den Assembler-Quellen, die FASM 1.73.35 sonst als illegale Instruktion interpretiert hätte.
- Keine Änderung an CT64FILE V1 oder Kryptografie.


0.11y dev14 bis dev16
====================

- Neue Passwortoption "Bis zur Windows-Abmeldung merken".
- Ein validiertes Grundpasswort kann für die laufende Windows-Sitzung ausschließlich im Speicher der einen laufenden Cryptext64.exe gehalten werden.
- Mit gültigem Session-Passwort bedeutet X/Alt+F4: Hauptfenster ausblenden und Cryptext im System-Tray weiterlaufen lassen.
- Tray-Menü mit "Cryptext öffnen", "Passwort aus Speicher löschen" und "Cryptext beenden".
- Beenden mit gemerktem Passwort warnt vor dem Verlust des Session-Passworts; Windows-Abmeldung/Shutdown beendet ohne unnötige Rückfrage und wischt den sensiblen Zustand beim normalen Session-Ende.
- Ein späterer Explorer-/Kommandozeilenaufruf aktiviert die bereits laufende Instanz; per IPC werden nur Modus, Quelloptionen und Pfade übertragen.
- "Nicht im Speicher behalten" löscht das Session-Passwort unmittelbar.
- Der zunächst sichtbare Hilfe-"?" wurde wieder entfernt. Der Text "Bis zur Windows-Abmeldung merken" selbst wurde zur Hover-Zone für einen ausführlichen DE/EN-Sicherheitshinweis.


0.11y dev12 / dev13
===================

- Kleine optionale RAM-Anzeige für den eigenen Cryptext-Prozess eingeführt.
- Anzeigeformat: RAM: <PrivateUsage> / <WorkingSetSize> MiB.
- Die Anzeige ist standardmäßig verborgen und wird mit Shift+Info für die aktuelle Instanz ein- bzw. ausgeschaltet.
- Normaler Klick auf "Info" öffnet weiterhin den About-Dialog.
- Bei sichtbarer RAM-Anzeige erfolgt die Aktualisierung einmal pro Sekunde; im ausgeblendeten Zustand läuft kein eigener RAM-Anzeige-Timer.
- Der Anzeigezustand wird nicht dauerhaft gespeichert.


0.11y dev10 / dev11
===================

- Drag & Drop von Ordnern erhielt eine ausdrückliche Modusauswahl:
    Verschlüsseln
    Entschlüsseln
    Automatisch
    Abbrechen
- Sobald mindestens ein Ordner in der gedroppten Auswahl enthalten ist, gilt die gewählte Verarbeitungsart für die gesamte Auswahl.
- Die Modusauswahl startet noch keine Kryptografie. Die Verarbeitung beginnt weiterhin erst nach OK im Hauptfenster.
- "Verschlüsseln" verarbeitet normale Dateien und überspringt vorhandene .$#!-Dateien.
- "Entschlüsseln" verarbeitet nur .$#!-Dateien.
- "Automatisch" behält die bisherige suffixabhängige Verarbeitung bei.


0.11y dev8 / dev9
=================

- Virtuelle Tastatur folgt nun der gewählten Sprache: Deutsch QWERTZ, Englisch QWERTY; Y/Z werden entsprechend getauscht, auch in randomisierten Layouts.
- Bearbeitung eines gemerkten Passworts korrigiert: Das Feld kann vollständig bis auf Länge 0 geleert werden, ohne dass die gemerkten Bullets automatisch wieder erscheinen.
- Für die Entschlüsselung kann ein anderes/altes Dateipasswort eingegeben werden, ohne das separat gemerkte Grundpasswort zu ersetzen.


0.11y dev6 / dev7
=================

- Single-Instance-Modell eingeführt: pro interaktiver Windows-Sitzung läuft maximal eine normale Cryptext64.exe.
- Später gestartete Instanzen übergeben nur Operation, Keep/Delete-Source-Einstellung und Pfade und beenden sich danach wieder.
- Passwort, Passwort-Hash, Vault-Geheimnis und Dateischlüssel werden nicht zwischen Prozessen übertragen.
- Während eines laufenden Auftrags kann genau ein weiterer, wirklich anderer Auftrag separat warten.
- "Passwort ändern..." wurde auf einen eigenständigen Drei-Feld-Dialog umgestellt:
    Altes Passwort
    Neues Passwort
    Neues Passwort wiederholen
- Das bisherige Grundpasswort wird lokal geprüft; erst danach wird der neue Grundpasswort-Verifikator gesetzt.
- Bereits verschlüsselte Dateien behalten ihr ursprüngliches Passwort.


0.11y dev1 bis dev5
===================

- Festes Cryptext-Grundpasswort nach dem Bedienprinzip des klassischen Cryptext 3.4 eingeführt.
- Bei fehlendem Grundpasswort erscheint ein Zwei-Feld-Einrichtungsdialog mit Passwort und Wiederholung.
- Die Einrichtung wird bereits beim Programmstart angeboten; Abbruch lässt Cryptext für reine Entschlüsselungsaufgaben weiter starten.
- Spätere Verschlüsselungen werden vor Beginn gegen den lokalen Grundpasswort-Verifikator geprüft. Bei falschem Passwort wird keine Tempdatei erzeugt und keine Datei verändert.
- Entschlüsselung bleibt absichtlich frei für alte Passwörter, fremde Installationen und Legacy-Dateien.
- Der lokale Verifikator speichert nicht das Klartextpasswort; Salt/Verifier werden lokal geschützt.
- Verbesserte Fehlertexte für fehlende/umbenannte Dateien, Zugriff verweigert und den Sonderfall "Verschlüsselung erfolgreich, Originaldatei konnte nicht gelöscht werden".
- Passwort-/PIN-Dialoge erhielten einheitliche helle Dialogflächen und weiße Eingabefelder.


0.11x / fix1 / fix2 / fix3
==========================

- Rekursive Ordner-Verschlüsselung und -Entschlüsselung eingeführt.
- Explorer-Kontextmenü für Ordner bietet "Verschlüsseln" und "Entschlüsseln".
- Jede Datei bleibt eine eigene sichere Transaktion; es wird kein Ordner-Containerformat erzeugt.
- Reparse Points, Junctions und Symlinks werden bewusst nicht verfolgt.
- Große rekursive Auswahlen verwenden eine dynamische VirtualAlloc-gestützte Dateiliste; Ordner mit mehr als 2000 Dateien wurden damit erfolgreich verarbeitet.
- Ordner-Enumerationsfehler wie ERROR_ACCESS_DENIED werden getrennt von normalen Datei-Zugriffsfehlern behandelt.
- Drag & Drop akzeptiert seit fix3 auch Ordner sowie gemischte Datei-/Ordnerauswahlen.
- Vierte umschaltbare .$#!-Dateisymbolvariante ergänzt: BeOS-v4. Der About-Zyklus umfasst damit Schlüssel, AES v2, AES v3 und BeOS v4.
- CT64FILE V1, moderne AES-256-GCM/PBKDF2-Kryptografie und der bestätigte Cryptext-3.x/3.4-Decrypt-only-Pfad bleiben unverändert.


0.11w fix1
==========

- Kleiner UI-/Textkorrektur-Patch auf 0.11w.
- About-Symbol korrigiert: Verwendung der richtigen STATIC-Nachricht STM_SETIMAGE.
- About-OK-Button auf denselben flachen Stil wie die Hauptfenster-Buttons gebracht.
- Veraltete sichtbare "0.10a test"-Formulierungen aus Datei-Fehlermeldungen entfernt.
- Formatfehlermeldung nennt nun korrekt CT64FILE V1 sowie Legacy-Cryptext-3.x/3.4-Entschlüsselung.
- Englische Legacy-/Passworthinweise angepasst.
- Keine Änderung an CT64FILE V1, Kryptografie, Vault, Dateitransaktion oder Legacy-Algorithmus.


0.11w
=====

- Nativer modaler About-Dialog ersetzt die bisherige Info-MessageBox.
- Optische Anlehnung an Cryptext 3.4 mit Symbol, Text und OK-Button.
- Verstecktes Easter Egg: Klick auf das About-Symbol schaltet zwischen drei eingebetteten Dateisymbolvarianten.
- Symbolauswahl wird in HKCU gespeichert und für den .$#!-Explorer-Dateityp übernommen.
- Explorer wird über SHChangeNotify zur Symbolaktualisierung aufgefordert.
- Installer erhält die gewählte Symbolvariante bei Update/Neuinstallation.
- Batch-Zusammenfassung versionsneutral formuliert.
- Legacy-3.x/3.4-Decrypt-only-Pfad aus 0.11v fix2 bleibt erhalten und wurde mit mehreren echten Dateigrößen getestet.
- Moderne Verschlüsselung bleibt unverändert CT64FILE V1.


0.11v / 0.11v fix2
===================

- Erster Decrypt-only-Kompatibilitätspfad für originale Cryptext-3.x/3.4-Dateien.
- Dateien ohne CT64FILE-Magic werden als mögliche Legacy-Dateien geprüft.
- Rekonstruierter historischer Algorithmus: SHA-1 + RC4.
- Alter Dateiaufbau: Ciphertext + 12 Byte dateispezifische Daten + 20 Byte Passwort-Prüfwert.
- Auch Legacy-Dateien laufen durch die moderne transaktionssichere Ausgabebehandlung: read-only Quelle, versteckte Tempdatei, Flush, zweiter On-Disk-Decrypt-/Bytevergleich, WRITE_THROUGH-Rename und erst danach optionales Löschen der Quelle.
- Legacy-Format wird niemals geschrieben.
- Hinweis: Der alte Dateibody besitzt keine moderne vollständige MAC/AEAD-Integritätsprüfung.
- fix2 korrigiert die SHA-1-Byte-/Wortreihenfolge, damit die historische Little-Endian-Darstellung des originalen Cryptext 3.4 exakt reproduziert wird.
- fix2 wurde mit echten Cryptext-3.4-Dateien und unterschiedlichen Passwörtern bestätigt.


0.11u
=====

- UI-Feinschliff des DE|EN-Pixelumschalters.
- Passwort-ändern-Dialog wird an die Monitor-Work-Area geklemmt.
- Caret der beiden neuen Passwortfelder wird nach jeder Bullet-Aktualisierung korrekt hinter das letzte Zeichen gesetzt.
- Keine Änderung an Dateikryptografie, CT64FILE V1, Vault-A/B oder Dateitransaktion.


0.11t / compile fix1
====================

- Deutsch-/Englisch-Umschaltung eingeführt.
- Kleiner DE|EN-Schalter im Hauptfenster; Sprache wird best effort unter HKCU gespeichert.
- Übersetzt wurden Hauptfenster, Vault-Menüs, Drag-&-Drop-Titel, About, Dateiauswahl, Fortschritt, Tresor-Dialoge, virtuelle Tastatur, Fehler-/Batchmeldungen und Explorer-Kontextmenü.
- Cryptext startet bei fehlender/ungültiger Spracheinstellung auf Deutsch.
- Shell-DLL liest die Sprache beim Aufbau des Kontextmenüs neu; kein Explorer-Neustart für Sprachwechsel erforderlich.
- compile fix1 behebt eine FASM-1.73.35-Makro-/lokale-Label-Kollision, ohne Laufzeit-, Krypto- oder Formatänderung.


0.11s
=====

- "Passwort ändern..." ist nun produktiv.
- Änderung betrifft ausschließlich das lange im lokalen Tresor gespeicherte Cryptext-Passwort.
- Bereits verschlüsselte .$#!-Dateien werden nicht umgeschlüsselt und benötigen weiterhin ihr ursprüngliches Passwort.
- Ablauf: Vault-PIN authentifizieren, neues langes Passwort zweimal eingeben, neuen A/B-Tresorslot schreiben.
- A/B-Update schreibt Generation+1 in den jeweils anderen Slot, liest zurück und authentifiziert vollständig, bevor die neue Generation als gültig gilt.
- Passwort- und PIN-Puffer bleiben in den vorgesehenen geschützten Speicherbereichen; ein gemerktes altes Session-Passwort wird nach erfolgreicher Änderung gelöscht.
- Kleinere UI-Korrekturen an Beschriftungen/Systemmenütexten.


0.11r
=====

- Installer robuster für Quell-/Paketpfade mit Klammern.
- Erstinstallation erkennt, dass noch keine installierte Shell-DLL vorhanden ist, und startet Explorer nicht unnötig neu.
- Update entfernt alte Shell-Registrierung, beendet Explorer bei Bedarf zum Freigeben der geladenen DLL und startet ihn anschließend nur wieder, wenn er vorher lief.
- Installation bleibt per Benutzer unter HKCU und ohne Administratorrechte.


0.11q
=====

- Positionierung des randomisierten Tresor-Ziffernfelds verbessert.
- Bevorzugt rechts, dann links, darunter oder oberhalb des PIN-Dialogs.
- Position wird an die Work Area des nächstgelegenen Monitors geklemmt.
- Die PIN-/Bullet-Anzeige bleibt dadurch möglichst sichtbar.
- Keine Änderung an Vault-Kryptografie, CT64FILE V1 oder Dateitransaktion.


0.11p / FASM compile fix2
=========================

- Randomisiertes numerisches Bildschirm-Ziffernfeld für Tresor-PIN eingeführt.
- Ziffern 0-9 werden bei jedem Öffnen mit BCryptGenRandom neu gemischt.
- Klick schreibt direkt in den geschützten PIN-Puffer; keine simulierten Tastaturereignisse.
- Fortschrittsfenster besitzt kein Systemmenü mehr, damit keine modale Windows-Menüschleife die laufende Verarbeitung pausieren kann.
- Vollständig erfolgreiche Batches benötigen keine zusätzliche Erfolgs-MessageBox; Fehler-/Abbruchzusammenfassungen bleiben.
- FASM compile fix2 ergänzt explizite qword-Größen bei HWND-Arrayzugriffen; keine Änderung an Laufzeitlogik oder Kryptografie.


0.11o
=====

- Erfolgreiche Einzeldatei-Verarbeitung beendet sich ohne zusätzliche Entwicklungs-/Erfolgs-MessageBox.
- Fortschrittsdialog schließt und Cryptext kehrt direkt zur Hauptoberfläche zurück.
- Fehler, falsches Passwort, Manipulation, Kollision, Speicherplatzfehler, Abbruch und Warnungen bleiben sichtbar.
- Kryptografie, Tresor, CT64FILE V1 und Transaktionslogik unverändert.


0.11n
=====

- Eigener modaler Dialog "Tresor einrichten".
- Eigener modaler Dialog "Tresor entsperren".
- Einrichtungsdialog nimmt 4- bis 6-stellige PIN plus Wiederholung entgegen.
- Entsperrdialog lädt nach erfolgreicher DPAPI/PBKDF2/AES-GCM-Authentifizierung das lange Cryptext-Passwort in SecureInput.
- PIN-EDITs sind nur Bullet-Anzeige; eigentliche PIN liegt im best-effort VirtualLock-geschützten Vault-Workspace.
- Paste/Cut/Clear werden blockiert.
- Abbruch beim Einrichten stellt das zuvor eingegebene lange Passwort im geschützten Hauptpuffer wieder her.


0.11m
=====

- Erster produktiver VaultA/VaultB-Tresor.
- Echtes langes Cryptext-Passwort kann in einem versionierten VLT1-REG_BINARY-Blob gespeichert und wieder entsperrt werden.
- Konstruktion: Current-User-DPAPI-DeviceSecret, PBKDF2-HMAC-SHA-256, 256-Bit-KEK, zufälliger 256-Bit-VaultKey, zwei AES-256-GCM-Schichten.
- VaultA Generation 1 wird geschrieben, zurückgelesen, bytegenau verglichen und vollständig kryptografisch validiert.
- Vorhandene VaultA/VaultB-Werte werden beim Setup nicht still überschrieben.
- CT64FILE V1 und der Datei-Kryptopfad bleiben unverändert.


0.11l
=====

- Persistenter A/B-Entwicklungstest des Vaults unter HKCU\Software\Cryptext64\Vault.
- Testwerte VaultTestA/VaultTestB werden strukturell und kryptografisch geprüft.
- Generation wird erst nach erfolgreicher DPAPI/PBKDF2/GCM-Prüfung berücksichtigt.
- Neuer Slot wird nach Registry-Schreibvorgang erneut gelesen, byteweise verglichen und erneut authentifiziert.
- Vorbereitung für den späteren produktiven VaultA/VaultB-Betrieb.


0.11k
=====

- Isolierter PIN/DPAPI/PBKDF2/AES-GCM-Kryptotest für den geplanten Tresor.
- 4- bis 6-stellige PIN; KDF-Saltmaterial kombiniert öffentlichen Salt mit Current-User-DPAPI-DeviceSecret.
- 256-Bit-KEK und zufälliger 256-Bit-VaultKey.
- AES-256-GCM-Wrapping und absichtlicher Tag-Manipulationstest.
- Alle beteiligten Schlüssel/Secrets nur im privaten Vault-Workspace und anschließend gelöscht.
- Noch keine produktive Registry-Speicherung.


0.11j
=====

- Erstes isoliertes Vault-Fundament.
- Neues Vault-Modul, HKCU-Zielpfad und A/B-Blobstruktur festgelegt.
- Versioniertes Vault-Blob-V1 mit Generation, KDF-/Cipher-ID, Salt, Nonces, Tags, DPAPI-Teil und variabler Passwort-Ciphertextlänge.
- 20-KiB-Workspace über VirtualAlloc, VirtualLock best effort.
- Zufälliges 256-Bit-DeviceSecret und Current-User-DPAPI-Helfer.
- Noch keine Verbindung zum Datei-Kryptopfad.


0.11i
=====

- Kompakter About-Dialog mit Entwickler-/FASM-Information eingeführt.
- Keine Änderung an Datei-, Shell- oder Kryptologik.


0.11h
=====

- Drag & Drop für eine oder mehrere Dateien auf das Hauptfenster.
- Gedroppte Dateien verwenden dieselbe vorhandene Auto-/Batch-Verarbeitung; kein zweiter Kryptopfad.
- Gemischte normale und .$#!-Dateien erlaubt.
- Ordner-Drops werden bewusst abgelehnt.
- "Always on Top" im nativen Fenstersystemmenü.
- Während aktiver Dateitransaktion werden verspätete Drop-Ereignisse verworfen, damit die aktive Batch-Liste nicht ersetzt wird.


0.11g
=====

- Emoji-Schlösser aus Explorer-Menütexten wieder entfernt.
- Stattdessen echte farbige, DPI-angepasste Menübitmaps aus 16/32/64-Pixel-Ressourcen.
- Bei Grafikfehler bleibt der Text-Menüeintrag funktionsfähig.
- Keine Passwort-, Krypto- oder Dateioperationslogik im Explorer-Prozess hinzugefügt.


0.11f
=====

- Kontextmenü erhielt zunächst Schloss-Symbole im Text für eindeutige Verschlüsseln-/Entschlüsseln-Befehle.
- Gemischte Auswahl blieb bei "Cryptext".
- Kryptografie und Dateioperationen unverändert.
- Diese Text-Emoji-Lösung wurde in 0.11g durch echte Bitmaps ersetzt.


0.11e
=====

- "+ Disk-Sync"-Statuszeile optisch korrigiert.
- Erste Fortschritts-Statuszeile wird in einem gemeinsamen GDI-Zeichenbereich gezeichnet, damit vor "+ Disk-Sync" exakt ein gewünschter Abstand entsteht.
- Disk-Sync-Pulsanimation, Doppelklick-Zuordnung und Kryptografie unverändert.


0.11d
=====

- Position von "+ Disk-Sync" wird anhand der tatsächlich verwendeten GUI-Schrift berechnet.
- .$#!-Dateityp erhält einen Open-Befehl: Doppelklick startet Cryptext64.exe --decrypt "%1".
- Die eigentliche Entschlüsselung beginnt weiterhin erst nach Passwort und OK.


0.11c
=====

- "+ Sync" in "+ Disk-Sync" umbenannt und näher an die erste Statuszeile gerückt.
- Installationsskript verbessert: Bei Updates kann Explorer zum Freigeben der alten Shell-DLL beendet, die neue Version kopiert und Explorer anschließend neu gestartet werden.
- Kryptografie und CT64FILE V1 unverändert.


0.11b
=====

- Fortschrittsdialog zeigt während der FlushFileBuffers-Wartephase eine pulsierende "+ Sync"-Anzeige.
- Datei-/Kryptologik unverändert.


0.11a
=====

- .$#!-Dateityp mit Cryptext-Dateisymbol pro Benutzer registriert; Endung bleibt sichtbar.
- Fortschrittsfenster wird bevorzugt rechts, alternativ links neben dem Passwortfenster positioniert.
- FlushFileBuffers läuft in einem kleinen Hilfsthread, während der UI-Thread Nachrichten weiter verarbeitet.
- Verhindert bei großen Dateien den Eindruck "Keine Rückmeldung" während längerer Disk-Sync-Phasen.
- Sicherer Fallback auf synchronen Flush, falls CreateThread scheitert.
- Transaktionsreihenfolge und Kryptografie unverändert.


0.11
====

- Erste echte native x64-Explorer-Shell-Erweiterung.
- Classic COM: IClassFactory, IShellExtInit und IContextMenu.
- Explorer liefert Dateipfade; DLL startet die vorhandene EXE-Kommandozeilenbrücke.
- Keine Passwörter oder Kryptozustände im Explorer-Prozess.
- Kontextabhängiger Befehl: normale Dateien Verschlüsseln, .$#! Entschlüsseln, gemischte Auswahl Cryptext/Auto.
- Per-User-Registrierung unter HKCU ohne Administratorrechte.
- EXE und Shell-DLL werden nach %LOCALAPPDATA%\Cryptext64 kopiert.


0.10a
=====

- Kompakte Telemetrie für längere Dateioperationen.
- Anzeige von Dateigröße, geglätteter MiB/s-Geschwindigkeit und ungefährer Restzeit samt Gesamtprozent.
- Keine Vergrößerung des Fortschrittsfensters.
- Große Dateien ab 400 MiB zeigen Größe sofort; kleinere langsame Vorgänge können dynamisch eingeblendet werden.
- Durchsatzaktualisierung maximal einmal pro Sekunde mit einfacher Glättung.
- ETA berücksichtigt während Phase 1 auch den späteren vollständigen On-Disk-Verifikationsdurchlauf.
- Kryptografie und Transaktionsreihenfolge unverändert.


0.10
====

- Kommandozeilen-/Explorer-Dispatch-Brücke eingeführt.
- Modi: --auto, --encrypt, --decrypt.
- Quelloptionen: --keep-original, --delete-source.
- Windows-konforme Argumentauswertung über CommandLineToArgvW.
- Pfade aus unterschiedlichen Verzeichnissen werden in eine Cryptext-eigene Vollpfadliste übernommen.
- Keine automatische Kryptografie beim Programmstart; Passwortdialog und OK bleiben zwingend.
- Ungültige Optionen führen zurück in den manuellen Modus.


0.9b
====

- Rein kosmetischer Feinschliff des Fortschrittsdialogs.
- Dateipfad leicht verschoben, Statusschrift verkleinert und drei Phasenzeilen kompakter angeordnet.
- Fortschrittslogik, Batch-Verhalten, Abbruch und CT64FILE V1 unverändert.


0.9a
====

- Fehler der Fortschrittsposition aus 0.9 behoben.
- Kompaktere, stärker an Cryptext 3 angelehnte Dialoggeometrie.
- Flacher Abbruch-Button.
- Nativer geglätteter grüner Fortschrittsbalken.
- Kryptografie und Transaktionslogik unverändert.


0.9
===

- Klassisches Win32-Fortschrittsfenster eingeführt.
- Anzeige von "Datei x von y", aktuellem Pfad und drei Transaktionsphasen.
- Fortschrittsaufteilung: Schreiben/Entschlüsseln, On-Disk-Verifikation, finaler Commit.
- Kooperativer Abbruch an authentifizierten Record-Grenzen.
- Abbruch wird deaktiviert, sobald die kurze sichere Commit-Phase beginnt.
- Spezifische Fehlertexte für Zugriffsfehler, Sharing-Verletzung, Schreibschutz, Kollision, Disk Full, Format, Verifikation und GCM-Authentifizierung.
- Batches können nach Einzelfehlern fortgesetzt werden und erhalten eine Abschlussstatistik.


0.8a
====

- Bullet-Anzeige bei gemerktem Session-Passwort verbessert, ohne Passwortzeichen zurück in das EDIT zu kopieren.
- Mehrfachauswahl im Windows-Dateidialog.
- Eine Passphrase kann für einen kompletten Batch verwendet werden.
- Pro Datei automatische Entscheidung Verschlüsseln/Entschlüsseln anhand der Endung.
- Fehler werden gezählt und müssen spätere Dateien nicht automatisch stoppen.
- Abschlusszusammenfassung für Mehrfachauswahl.


0.8
===

- "Originaldatei beibehalten" funktioniert symmetrisch beim Verschlüsseln und Entschlüsseln.
- Quelldatei wird nur nach vollständiger Verifikation, Commit und Metadatenwiederherstellung gelöscht.
- Prozessbezogene Option "Bis Cryptext beendet wird merken" aktiviert.
- Sitzungspasswort liegt in einem separaten Bereich der best-effort gelockten Speicherseite.
- Aktives Operationspasswort wird weiterhin nach jedem Vorgang gelöscht.
- Authentifizierungsfehler kann den Session-Cache löschen und eine manuelle Neueingabe erzwingen.


0.7
===

- Erste vollständige moderne CT64FILE-V1-Entschlüsselung.
- .$#! wird als Entschlüsselung erkannt.
- Versteckte Klartext-Tempdatei mit CREATE_NEW; kein Überschreiben vorhandener Ziele.
- Metadaten werden authentifiziert, bevor eine Klartext-Tempdatei erstellt wird.
- Gespeicherte Chunkgröße wird im erlaubten Bereich 64 KiB bis 64 MiB berücksichtigt.
- Reader-Limit für PBKDF2-Iterationen eingeführt.
- Nach erstem Entschlüsseln und Flush erfolgt ein zweiter vollständiger GCM-Durchlauf mit Bytevergleich.
- Falsches Passwort oder Beschädigung entfernt die partielle Tempdatei und erhält die .$#!-Quelle.


0.6
===

- Checkbox "Originaldatei beibehalten" erstmals funktional.
- Optionales Löschen der Quelle erfolgt erst nach vollständiger On-Disk-Verifikation, Rename, Zeitstempel- und Attributwiederherstellung.
- Fehler beim Quelllöschen zerstört die bereits verifizierte Ausgabedatei nicht.
- Finale verschlüsselte Datei übernimmt Quell-Zeitstempel.


0.5b
====

- Vollständige 0.5a-On-Disk-Verifikation beibehalten.
- Getrennte Temp- und finale .$#!-Pfade.
- Bereits existierende Zieldatei wird vor teurer Kryptografie abgelehnt.
- Commit erst nach erfolgreicher Verifikation über MoveFileExW(MOVEFILE_WRITE_THROUGH).
- Versteckt-Attribut der Tempdatei wird nicht versehentlich auf normale Ausgabedateien übertragen.


0.5a
====

- Vollständige On-Disk-Verifikation nach dem Schreiben hinzugefügt.
- Tempdatei wird nach Flush geschlossen und von Disk wieder geöffnet.
- Header und exakte erwartete Größe werden erneut geprüft.
- PBKDF2 wird anhand der tatsächlich zurückgelesenen Datei erneut ausgeführt.
- Metadaten- und Datenrecords werden GCM-authentifiziert und mit der noch unveränderten Quelle byteweise verglichen.
- Verifikationsfehler entfernt die erzeugte Tempdatei.


0.5
===

- Erster echter CT64FILE-V1-Dateischreiber.
- Quelldatei wird nur lesend geöffnet.
- Ausgabe zunächst als versteckte source.ext.$#!.temp mit CREATE_NEW.
- PBKDF2-HMAC-SHA-256 mit Writer-Policy 600.000 Iterationen.
- AES-256-GCM-Metadatenrecord und 4-MiB-Datenrecords.
- Frischer 16-Byte-Salt und 8-Byte-Nonce-Präfix über BCryptGenRandom.
- Metadaten speichern Zeitstempel und wiederherstellbare Dateiattribute.
- FlushFileBuffers und Prüfung der erwarteten Dateigröße.
- Arbeits- und Schlüsselmaterial wird vor Freigabe gelöscht.
- Noch kein finaler Rename und keine Entschlüsselung in diesem Stand.


0.4a
====

- CT64FILE V1 fest definiert.
- 72-Byte-Festheader und 48-Byte-verschlüsseltes Metadatenlayout.
- Exakte Passwortkodierung UTF-16LE ohne NUL/Normalisierung.
- Nonce-, AAD- und Record-Reihenfolge festgeschrieben.
- Writer-Standard 600.000 PBKDF2-Iterationen, pro Datei gespeichert.
- Deterministischer Interoperabilitäts-Testvektor veröffentlicht.
- Noch keine echte Benutzerdatei-E/A.


0.4
===

- Erster ausführbarer kryptografischer Kern im RAM.
- PBKDF2-HMAC-SHA-256 über Windows BCryptDeriveKeyPBKDF2.
- AES-256-GCM über Windows CNG.
- Frischer Salt und GCM-Nonce per BCryptGenRandom.
- Authenticated Additional Data im Testrecord.
- Encrypt->Decrypt->Bytevergleich im RAM.
- Absichtlich beschädigter Tag muss mit AUTH_TAG_MISMATCH abgelehnt werden.
- Alte feste SecureInput-SHA-256-Diagnose entfernt.
- Test-PBKDF2-Zahl 10.000 war nur für den schnellen RAM-Selbsttest.


0.3i
====

- UI-Feinschliff der virtuellen Tastatur.
- DT_NOPREFIX für korrekte Darstellung des Zeichens "&".
- Caret der Bullet-Anzeige wird korrekt ans Ende gesetzt.
- Keine Änderungen an SecureInput, Randomisierung oder Schutzmechanismen.


0.3h
====

- Deterministischer SecureInput-Korrektheitstest.
- Privater UTF-16LE-SecureInput-Puffer wird per CNG-SHA-256 geprüft.
- Fester Testvektor Test0815$#!.
- SecureInput wird nach dem Diagnoseergebnis gelöscht.
- Noch keine echte Datei-Kryptografie.


0.3g
====

- Virtuelle Tastatur startet wieder im normalen QWERTZ-Layout.
- Manueller Randomize-/Shuffle-Knopf hinzugefügt.
- Jede Betätigung erzeugt eine neue Fisher-Yates-Anordnung der Zeichenpositionen über BCryptGenRandom.
- Shift, Backspace, Space und Randomize bleiben fest.
- Bestehende Passworteingabe bleibt beim Neumischen erhalten.


0.3f
====

- Erste echte Randomisierung der Zeichenpositionen der virtuellen Tastatur.
- 40 Zeichen-Slots werden mit Fisher-Yates und BCryptGenRandom gemischt.
- Bei RNG-Fehler Rückfall auf kanonisches QWERTZ.
- Keine synthetischen Tastaturereignisse.


0.3e
====

- Position eines sichtbaren Tastaturfelds und Bedeutung des Symbols intern getrennt.
- Laufzeit-Tabelle Slot->SymbolID eingeführt.
- Vorbereitung für sichere Randomisierung, ohne SecureInput-/Hit-Test-Logik umzubauen.


0.3d
====

- Shift und Backspace lösen keine unnötige Zeichen-/Mauszeiger-Verdeckung mehr aus.
- Nur passworterzeugende Tasten gelten als sensibel; Space bleibt sensibel.
- Schutzintervall für sensible Klicks bleibt erhalten.


0.3c
====

- Virtuelle Shift-/Umschalt-Taste ohne synthetische OS-Tastaturereignisse.
- One-shot-Shift.
- Deutsches QWERTZ-/Zahlenreihen-Shift-Mapping.
- SymbolID bleibt unabhängig von Position und Shift-Zustand.


0.3b
====

- Virtuelle Tastatur blendet während sensibler Mausklicks zusätzlich den Mauszeiger aus.
- Rückkehr von Beschriftung/Mauszeiger erst nach mindestens 140 ms und Loslassen der Maustaste.
- Verwendet SetCursor(NULL), nicht den ShowCursor-Zähler.
- Capture-Schutz bleibt best effort.


0.3a
====

- FASM-1.73.35-Kompatibilitätskorrekturen im virtuellen Tastaturcode.
- Keine Funktions- oder Layoutänderung.


0.3
===

- Erste funktionale eigene virtuelle Tastatur als separates Top-Level-Fenster.
- Eigene GDI-Zeichnung, keine nativen BUTTON-Controls.
- Keine SendInput/keybd_event/synthetischen Tastaturmeldungen.
- Eigener SecureInput-Pfad.
- Tastatur folgt dem Passwortdialog und wird an die Monitor-Arbeitsfläche angepasst.
- WDA_EXCLUDEFROMCAPTURE best effort.
- Noch keine Datei-Ver-/Entschlüsselung.


0.2d
====

- Flacher Button-Stil für OK, Abbruch, Passwort ändern und Info.
- Korrektur eines README-Versionsfehlers.
- Datei-Ver-/Entschlüsselung war in diesem frühen UI-Stand noch deaktiviert.


ENDE
====

Aktueller Stand: Cryptext x64 0.11y dev19
Siehe README-DE.txt für Installation, Nutzung, Sicherheitsmodell, Legacy-Hinweise und Roadmap.
